package com.city.java.products.service;

import com.city.java.base.utils.PageVO;
import com.city.java.products.pojo.entity.Products;
import com.city.java.base.response.JsonResult;

import java.util.List;

/**
 * 商品服务接口
 */
public interface ProductService {
    /**
     * 添加商品
     * @param product 商品对象
     * @return 操作结果
     */
    JsonResult addProduct(Products product);

    /**
     * 根据商品ID获取商品
     * @param productId 商品ID
     * @return 商品信息
     */
    JsonResult getProductById(Long productId);

    /**
     * 获取所有商品列表
     * @return 商品列表
     */
    JsonResult getAllProducts();

    /**
     * 根据积分范围获取商品列表
     * @param minPoints 最小积分
     * @param maxPoints 最大积分
     * @return 商品列表
     */
    JsonResult getProductsByPointsRange(Integer minPoints, Integer maxPoints);

    /**
     * 根据条件查询商品列表
     * @param products
     * @return
     */
    PageVO<Products> select(Products products);

    /**
     * 根据商品名称获取商品列表
     * @param productName 商品名称
     * @return 商品列表
     */
    JsonResult getProductsByName(String productName);

    /**
     * 根据商品ID删除商品
     * @param productId 商品ID
     * @return 操作结果
     */
    JsonResult deleteProductById(Long productId);

    /**
     * 更新商品信息
     * @param product 商品对象
     * @return 操作结果
     */
    JsonResult updateProduct(Products product);
}
